/**
 * Class: OpenLayers.PoiQueryHandler
 * WMS图层查询处理对象,空间数据查询由wfs实现
 *  
 * 继承自:
 *  - <OpenLayers.Class> 
 */
OpenLayers.PoiQueryHandler=OpenLayers.Class({
	
	 /**
	  * 服务器端处理普通查询的URL
	  */
	commonQueryURL: null,
	 /**
	  * 初始化函数
	  */
    initialize: function(qos,queryend, options) {
		this.queryObjectList=qos;
		this.queryend = queryend;
		OpenLayers.Util.extend(this,options);
    },
    
	/**
	 * 提交查询的XML，返回数据,如果queryobject 的QueryByServer属性为false则执行客户端过滤
	 */
    requestData: function(){
    	
    	//根据
    	for(var i in this.queryObjectList){
    		var queryObject = this.queryObjectList[i];
    		var queryResults=[];
    		//执行客户端过滤
    		if(!queryObject.queryByServer){
    			queryResults.push(this.filterByClient(queryObject));
    		}else{
    			
    		}  
    	}
  	   	if(this.queryend!=null){
	    	//设置了二次开发查询后回调
	    		this.queryend(queryResults);
	    	}else{
	    	    //alert(queryResults[0][0].lonlat);
	    	}
    },
    
	/**
	 * 根据参数集合构建查询XML
	 */
    createQueryXML:function(){
    	
    },
    
	/**
	 * 从服务器端过滤POI数据
	 */
	filterByServer:function(){
		
	},
   
	/**
	 * 从客户端过滤数据
	 */
    filterByClient:function(queryObject){
    	//poi图层
		var poilayer = queryObject.layer;
		if(poilayer != null){
			//当前空间查询的多边形区域
			var querypolygon = new OpenLayers.Bounds.fromString(queryObject.coords);

			var result = [];
			for(var i in poilayer.markers){
				var marker = poilayer.markers[i];
				var lonlat = marker.lonlat;
				//当前marker的坐标是否在该查询区域内部
				if(querypolygon.containsLonLat(lonlat)){
					result.push(marker);
				}
			}
			//alert("查询到"+result.length+"个poi点");
			return result;
		}
	},
    
    
    CLASS_NAME: "OpenLayers.PoiQueryHandler"
});